/**
 * 给你一个字符串 s，找到 s 中最长的回文子串。

 

示例 1：

输入：s = "babad"
输出："bab"
解释："aba" 同样是符合题意的答案。
示例 2：

输入：s = "cbbd"
输出："bb"


来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
/**
 * @param {string} s
 * @return {string}
 */
var longestPalindrome = function (s) {
    //中心扩散法
    //需要考虑两种情况， 长度为奇数的情况、偶数的情况

    if (s.length === 1) return s

    let resStr = ''
    for (var i = 0; i < s.length; i++) {
        //奇数情况
        let str1 = isHuiwen(s, i, i)
        //偶数情况
        let str2 = isHuiwen(s, i, i + 1)

        if (str1.length > resStr.length) {
            resStr = str1
        }
        if (str2.length > resStr.length) {
            resStr = str2
        }
    }
    return resStr

};


//判断是否为回文
function isHuiwen(str, l, r) {
    while (l >= 0 && r < str.length && str[l] === str[r]) {
        l--
        r++
    }
    // l+1 是因为上一步多减一次
    return str.slice(l + 1, r)
}